"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/6/10 14:31
@Description : 

"""
import re

"""
编写一个正则表达式，提取字符串中所有以大写字母开头的单词
"""
text = "HelloWorld, This is a Python Example."

# \b 表示边界
# reg = r'\b[A-Z][a-z]+\b'  ['This', 'Python', 'Example']
reg = r'[A-Z][a-z]+'  # ['Hello', 'World', 'This', 'Python', 'Example']

result = re.findall(reg, text)
print(result)

"""
编写一个正则表达式，匹配一个有效的电子邮件地址
邮箱的基本规则:
xxx@yyy.com
"""
text = "Contact us at support@example.com or info@test.py-domain.org."
reg = r'[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-z]+'
result = re.findall(reg, text)
print(result)

"""
编写一个正则表达式，提取字符串中所有以“#”开头的标签（例如“#python”或“#regex”）
"""
text = "I love #python and #regex. They are #awesome!"
reg = r'#[a-zA-Z]+'
result = re.findall(reg, text)
print(result)

"""
编写一个正则表达式，匹配一个有效的手机号码
1[3-9][0-9]{9}
"""
# text = "我的手机号码是13812345678，欢迎联系！另一个号码是15987654321无效号码：12345678901和9876543210"
reg = r'1[3-9][0-9]{9}'
# 严格匹配  用手机号 作为账号注册
# text = '13812345678'
# reg = r'^1[3-9][0-9]{9}$'
tel_list = re.findall(reg, text)
print(tel_list)

"""
编写一个正则表达式，匹配并提取字符串中符合“YYYY-MM-DD”格式的日期
"""
text = 'The event will take place on 2025-10-01 and end on 2025-10-10.'
reg = r'\d{4}-\d{2}-\d{2}'
result = re.findall(reg, text)
print(result)

"""
编写一个正则表达式，匹配字符串中表示数字范围的部分，格式为“最小值-最大值”（例如“10-20”或“100-200”）
"""
text = 'The range is 10-20 or 100-200, but not 10 or 200-300'
reg = r'\d+-\d+'
result = re.findall(reg, text)
print(result)

"""
编写一个正则表达式，匹配并提取字符串中符合IPv4地址格式的IP地址 192.168.1.1
"""
text = 'The server IP is 192.168.1.1 and the gateway is 10.0.0.1'
# reg = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
# () 组合
reg = r'(?:\d{1,3}\.){3}\d{1,3}'
result = re.findall(reg, text)
print(result)

"""
编写一个正则表达式，匹配并提取字符串中的HTML标签（例如<div>、<a href="...">等）    <  >
"""
text = "<html><head><title>Example</title></head><body><p>Hello, <a href='https://example.com'>world</a>!</p></body></html>12312413432"
reg = r'<[^>]+>'
result = re.findall(reg, text)
print(result)
